function move(ele, obj,fn=()=>{console.log('这是默认的函数')}) {
    let count = 0; //总的计数器  放到循环外边 
    var data = 0; // 用来存所有定时器结束以后 函数执行后的返回值
    for (let k in obj) {
        count++;
        const mystyle = k; // let变量值可以修改 
        let target = obj[k]; // const 常量  里边的值不可以修改 
        if (mystyle === 'opacity') {
            target *= 100;
        }
        const num = setInterval(function () {
            // 放到定时器里边 就可以拿到它新的位置  
            let init;
            if (mystyle === 'opacity') {
                init = window.getComputedStyle(ele)[mystyle] * 100
            }
            else {
                init = parseInt(window.getComputedStyle(ele)[mystyle])
            }
            // 记录新的运动距离
            let duration = (target - init) / 10;
            duration = duration > 0 ? Math.ceil(duration) : Math.floor(duration)
            // console.log(duration);
            if (init === target) {
               
                clearInterval(num);
                
                count--;
                if(count==0){
                    // 这里是所有的定时器结束了  
                    // 需要调用准备的方法   
                    // 形参fn 里边就是那个方法 
                    data = fn(10,20); //调用要加小括号  传值的不要加 
                }
               
                
            } else {
                if (mystyle === 'opacity') {
                    ele.style[mystyle] = (init + duration) / 100;
                }
                else {
                    ele.style[mystyle] = init + duration + 'px';
                }

            }
        }, 30);
    }
}
